package com.wzdigit.wms.hm.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzdigit.framework.orm.mybatis.MyBatisRepository;
import com.wzdigit.wms.hm.client.resp.InvQtyAndOutQtyResponse;
import com.wzdigit.wms.hm.domain.InvZone;
import com.wzdigit.wms.hm.service.SearchInvRequest;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 用于存放库区级别库存信息 Mapper 接口
 * </p>
 *
 * @author 
 * @since 2021-02-24
 */
@MyBatisRepository
public interface InvZoneMapper extends BaseMapper<InvZone> {
	
	// 查询库区库存的数量和支出数量
	List<InvQtyAndOutQtyResponse> getQtyAndOutQty(@Param("dto") SearchInvRequest dto);
	
//	// 获取可用库存数（指定仓库）
//	List<AvailableInvZoneByWhsResponse> getAvailableInvZoneByWhs(@Param("dto") SearchInvRequest dto);
//
//	// 获取可用库存数（仓库分组），指定用户权限的仓库
//	List<AvailableInvZoneGroupWhsResponse> getAvailableInvZoneGroupWhs(@Param("dto") SearchInvRequest dto,
//                                                                       @Param("whsIdList") List<Integer> whsIdList, @Param("whsTypeList") List<Integer> whsTypeList);
//
//	List<InvZoneListResponse> selectAll(@Param("dto") SearchInvRequest dto, @Param("filter") String filter);

    int updateQtyById(@Param("id") Integer id,
                      @Param("qty") BigDecimal qty,
                      @Param("holdQty") BigDecimal holdQty,
                      @Param("alocQty") BigDecimal alocQty,
                      @Param("preInQty") BigDecimal preInQty,
                      @Param("preOutQty") BigDecimal preOutQty,
                      @Param("preAlocQty") BigDecimal preAlocQty,
                      @Param("operator") String operator);

    int updatePreAlocQtyAlocQtyBySkuIdZoneId(InvZone invZone);
}
